package com.ruoyi.system.service;

import java.util.List;

import com.micro.school.system.api.domain.StudentInfos;
import com.micro.school.system.api.domain.vo.StudentInfoVos;
import com.micro.school.system.domain.StudentInfo;
import com.micro.school.system.domain.vo.StudentInfoOld;
import com.micro.school.system.domain.vo.StudentInfoVo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author rakic
 * @date 2025-08-05
 */
public interface IStudentInfoService extends IService<StudentInfo>
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public StudentInfoVo selectStudentInfoById(Long id);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param studentInfoVo 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<StudentInfo> selectStudentInfoList(StudentInfoVo studentInfoVo);

    /**
     * 新增【请填写功能名称】Vo
     * 
     * @param studentInfo 【请填写功能名称】
     * @return 结果
     */
    public String insertStudentInfo(StudentInfoVo studentInfoVo);

    /**
     * 修改【请填写功能名称】Vo
     * 
     * @param studentInfo 【请填写功能名称】
     * @return 结果
     */
    public String updateStudentInfo(StudentInfoVo studentInfoVo);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    public int deleteStudentInfoByIds(List<Long> ids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteStudentInfoById(Long id);

    int signStudentInfoByIds(StudentInfoVo studentInfoVo);

    int sealStudentInfoByIds(StudentInfoVo studentInfoVo);

    int sealStudentInfoById(StudentInfoVo studentInfoVo);

    int inStudentInfoByIds(StudentInfoVo studentInfoVo);

    List<StudentInfoVo> selectNewStudentInfoList(StudentInfoVo studentInfoVo);

    StudentInfos queryStudent(StudentInfoVo studentInfoVo);


    /**
     * 每次查询100条，按照id>某个值
     */
    public List<StudentInfos> selectStudentInfoListLimit(StudentInfoVo studentInfoVo);

    /**
     * 根据身份证号码查询学生信息（高性能查询接口）
     * @param idNumber 身份证号码
     * @return 学生信息
     */
    List<StudentInfos> queryStudentByidNumber(String trim);

    /**
     * 根据ids查询学生信息
     * */
    List<StudentInfos> selectStudentByIds(List<Long> ids);

    List<StudentInfoOld> selectOldStudentInfoList(StudentInfoVo studentInfoVo);

    List<StudentInfoVos> queryVosByIdNumber(StudentInfoVos studentInfoVo);

    int updateAllStudentInfoCollegeName(String collegeName, Long collegeId,String oldCollegeName);

    int updateAllCollegeMajor(String majorName, Long id, String oldMajorName);

    int updateAllCollegeModel(String modelName, Long id, String oldModelName);

    int updateAllCampusName(String campusName, Long id, String oldCampusName);

    int updateAllSchoolGrade(String grade, Long id);
}
